// author by welong
// zuowl@qq.com
// 2014-09-04  8:47
// PAT basic 1024

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/*
 * another way to input :
 * char sign,ch,dir,zheng[10001],xiao[10001];  
 * int a;
 * scanf("%c%d.%[^E]%c%c%s",&sign,&a,zheng,&ch,&dir,xiao); 
 */
void extract_num
(char *sign_whole, char *integer, char *exp, char *sign_exp, int *bit_integer)
{
	int  i, j = 0;
	char input[10000];

	scanf("%s", input);
	
	*sign_whole  = input[0];
	integer[j++] = input[1];
	
	for(i = 3; input[i] != 'E'; i++)
		integer[j++] = input[i];

	integer[j] = '\0';
	*sign_exp  = input[++i];
	*bit_integer = j;

	for(j = 0, i++; input[i] != '\0'; i++)
		exp[j++] = input[i];

	exp[j] = '\0';
}

char* malloc_zero(int num)	//number of zero contain in string
{
	int  i = 0;
	char *zero = (char*)malloc(num + 1);

	for(i; i < num; i++)
		zero[i] = '0';

	zero[i] = '\0';
	return zero;
}

int main(int argc, char **argv)
{
	int  i, j = 0;
	char *zero;

	int  bit_integer, iexp;
	char sign_whole , sign_exp;
	char exp[10], integer[10000], result[20000];	//if size of result==10000, cause test site 6 error
	
	extract_num(&sign_whole, integer, exp, &sign_exp, &bit_integer);
	iexp = atoi(exp);
	
	if(sign_whole == '-')	//if sign_whole == '+' show out, cause test site 2,3,5 error
		result[j++] = sign_whole;

	result[j] = '\0';

	if(sign_exp == '+' || iexp == 0)
	{
		if(iexp >= bit_integer - 1)
		{
			zero = malloc_zero(iexp - (bit_integer-1));
			
			strcat(result, integer);
			strcat(result, zero);

			free(zero);
		}
		else
		{
			for(i = 0; i <= iexp; i++)
				result[j++] = integer[i];

			result[j++] = '.';

			for(i; integer[i] != '\0'; i++)
				result[j++] = integer[i];

			result[j] = '\0';
		}
	}
	else
	{
		zero = (char*)malloc_zero(iexp - 1);

		strcat(result, "0.");
		strcat(result, zero);
		strcat(result, integer);

		free(zero);
	}

	printf("%s\n", result);	
	return 0;
}
